package com.project.service;

import com.github.pagehelper.PageInfo;
import com.project.bean.MainContentBean;

import java.time.LocalDate;

/**
 * @author lyl
 * description:主贴业务层接口
 */

public interface IMainContentService {
    /**
     * 根据所属的板块与分页页码进行主贴部分信息的分页展示
     * 需要与t_user表连接获取作者名称，需要与t_subContent连接并计算获取回帖数量
     * 所需信息包括：
     * 主贴标题，主贴作者（连表得到），回帖数量（连表计算得出），发帖时间
     *
     * @param pageNo    页码
     * @param themeId   主贴所属板块
     * @param mcTitle
     * @param username
     * @param startDate
     * @param endDate
     * @return 分页对象
     */
    PageInfo<MainContentBean> showMCByPage(int pageNo, int themeId, String mcTitle, String username, LocalDate startDate, LocalDate endDate);

    /**
     * 添加新的主贴
     *
     * @param mainContentBean 主贴对象
     * @param fkUserId        主贴所属的用户外键id
     * @param fkThemeId       主贴所属的主贴外键id
     */
    void addMC(MainContentBean mainContentBean, int fkUserId, int fkThemeId);

    /**
     * 根据主贴id显示主贴具体内容
     * 其中包含用户对象，需要连接t_user表，
     * 同时需要显示该主贴之中所有回帖信息，在回帖对象中需要查询回帖人的信息，需要连接t_subContent表
     * 所需展示信息：
     * 作者信息，主贴标题，主贴内容，主贴发帖时间
     *
     * @param mainContentId
     * @return 包含用户对象的主贴对象
     */
    MainContentBean findMCById(int mainContentId);

}
